package com.sugon.entity;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 备件仓库位置关联 用于存储备件位置以及数量实体
 * 表名 SPARE_STORE_POS
 *
 * @author sugon
 * @date 2020-03-09 11:31:06
 */
@Data
public class SpareStorePosEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 是否删除 0已删除 1未删除
     */
    private Integer delFlag;
    /**
     * 创建时间
     */
    private Date createDate;
    /**
     * 库存数量
     */
    private Integer storeNum;

    /**
     * 初始数量，不受出入库影响
     */
    private Integer initNum;
    /**
     * 存放位置
     */
    private String postion;
    /**
     * 备件编码
     */
    private String spareCode;

    /**
     * 备件ID
     */
    private String spareId;

    /**
     * 备件ERP编码
     */
    private String erpCode;
    /**
     * 备件名称
     */
    private String spareName;
    /**
     * 仓库ID
     */
    private String storeId;
    /**
     * 仓库编码
     */
    private String storeCode;
    /**
     * 仓库名称
     */
    private String storeName;

    /**
     * 供应厂商名称
     */
    private String producerName;

    /**
     * 工序
     */
    private String procedure1;

    /**
     * 规格
     */
    private String spec;

    /**
     * 锁定数量
     */
    private Integer locNum;

    /**
     * 库位类型：目前只区分ERP库位和其他库位
     * 只有当posType为ERP时，为ERP库位
     * 其他值或者没有值时，为其他库位
     */
    private String posType;

    /**
     * $column.comments
     */
    private String id;


    public Integer getLocNum() {
        return locNum == null ? 0 : locNum;
    }

    public Integer getStoreNum() {
        return storeNum == null ? 0 : storeNum;
    }

    /**
     * 获取备件库存可用数
     *
     * @return
     */
    public Integer getAvailableNum() {
        return getStoreNum() - getLocNum();
    }

}
